[TOC]
简介
ss-local 是 shadowsocks 的本地 socks5 服务器,因此,如果需要使用 ss-local 提供的 socks5 代理,就必须让应用程序使用 socks5 协议与之通信。但是很可惜,除了部分浏览器、软件直接支持 socks5 协议外,其它的都只支持 http 代理。因此,我们需要借助 privoxy 来将 http 代理协议转换为 socks5 代理协议,与后端的 ss-local 进行通信。
相关说明
shadowsocks两种使用姿势:
- ss-local+privoxy:使用 privoxy 作为前端的 http 代理(支持 CONNECT),可选择全局、gfwlist 两种方式;
- ss-redir+iptables:支持代理所有 TCP、UDP 流量(本机 UDP 除外),可选择全局、绕过大陆地址两种方式
今天我们要说的是第一种姿势,即ss-local + privoxy
;第二种姿势可以前往ss-redir 透明代理
这两种方式的主要区别在于:gfwlist、绕过大陆地址
gfwlist
:gfwlist 就是一个包含了几乎所有被墙域名的列表,因此,使用这种模式只会让被墙的网站走代理;但是很多国外没被墙的域名还是走的直连,因此访问国外未墙网站的时候速度依旧很慢,甚至出现连接超时的情况;绕过大陆地址
:顾名思义,只有发往大陆地址的流量不会走代理,其它的不管有没有被墙,统统走代理上网;这样就不会出现 gfwlist 模式的国外未墙网站访问慢的问题了。我个人建议使用这种模式。
当然,对于 gfwlist 模式出现的问题也不是没有解决办法,我们只需把要走代理的网站添加至 privoxy 规则文件,一样可以走代理。
ss-local篇(客户端)
安装
1 | CentOS RHEL |
配置
1 | vim /etc/shadowsocks.json |
运行
1 | sslocal -c /etc/shadowsocks.json -d start |
停止
1 | sslocal -c /etc/shadowsocks.json -d stop |
privoxy篇
安装
1 | yum -y install privoxy |
全局模式
全局模式是最简单最粗暴的,即:所有流量都走 ss-local,不区分什么国内国外。
因此请你确定否需要这种模式,如果不需要,请跳过此段,直接到 -gfwlist模式
1 | ### 新建 whitelist.action 白名单文件 |
gfwlist 是由 AutoProxy 官方维护,由众多网民收集整理的一个中国大陆防火长城的屏蔽列表;
因为这是 Firefox 浏览器直接使用的一种格式,因此,如果需要用在 privoxy 上就需要进行转换;
这里我提供一个 shell 转换脚本,除了正则语法无法自动处理外,其它的基本 OK
1 | ### 获取 gfwlist2privoxy 脚本 |
环境变量
1 | # privoxy 默认监听端口为 8118 |
代理测试
1 | # 访问各大网站,若均有网页源码输出则配置成功 |
shell脚本
因为每次都需要繁琐的设置 proxy 环境变量,因此这里提供一个简陋的 ss-privoxy 脚本,用于一键启用、关闭代理
新建
ss-privoxy
文件,chmod +x ss-privoxy
、cp -af ss-privoxy /usr/local/bin/
1 |
|